The present disclosure relates to computing systems.
Software quality assurance (QA) generally involves a level of re-testing or regression testing for large parts of an unchanged software system prior to validating that a product is ready for release. Also, as a prelude to testing a large piece of newly written software, it may be valuable to pre-check it by executing it (to the extent possible with automation) “in the large” (i.e., in an intended computing environment) prior to targeting specific trouble areas.
Code coverage is a measure used in software testing that describes the quantity or percentage of the source code of a program has been tested. For example, a software system may be built with testing options or libraries and/or run under a testing environment such that every function of the program that is executed (or “exercised”) is traced back to the corresponding instructions in the source code. This may allow developers and/or quality assurance personnel to look for parts of a system that are rarely or never accessed under typical conditions (such as error handling, boundary conditions, and the like), help reassure test engineers that more important conditions (such as mainline functions) have been tested, and/or allow management to make business decisions about quality risks. The resulting output may be analyzed to see what areas of code have not been exercised, and the testing suite may be augmented to include these areas. As such, automated test cases and code coverage tools can be leveraged to show that most or all of a software system has been executed faster and/or more efficiently than a software engineer testing each, function or instruction of a program (also referred to as “single stepping” through the program).